package com.daniel.create.singleton;

/**
 * @Description 懒汉式-线程安全，只需要对 getUniqueInstance() 方法加锁，那么在一个时间点只能有一个线程能够进入该方法，
 *              从而避免了多次实例化 uniqueInstance 的问题。但是当一个线程进入该方法之后，其它试图进入该方法的线程都必
 *              须等待，因此性能上有一定的损耗。
 * @Author GanShaoXi
 * @ClassName SingletonPattern_1
 * @Return com.daniel.create.singleton
 * @Since 1.0.0
 * @Created on 2023/5/16 19:43
 */
public class SingletonPattern_2 {
    private static SingletonPattern_2 uniqueInstance;

    private SingletonPattern_2() {

    }

    /**
     * 获取单例
     *
     * @return
     */
    public static synchronized SingletonPattern_2 getUniqueInstance() {
        if (uniqueInstance == null) {
            uniqueInstance = new SingletonPattern_2();
        }
        return uniqueInstance;
    }
}
